package cn.tqfeiyang.springplus.warehouse.service;

import cn.tqfeiyang.springplus.warehouse.entity.WarehouseEntity;
import cn.tqfeiyang.springplus.warehouse.request.WarehouseDTO;
import cn.tqfeiyang.springplus.warehouse.response.WarehouseVO;
import cn.tqfeiyang.springplus.warehouse.request.WarehouseSTO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.tqfeiyang.springplus.framework.pagination.PageData;

/**
 * 仓库服务接口
 *
 * @author tqfeiyang
 * @since 2024-08-01
 */
public interface WarehouseService extends IService<WarehouseEntity> {

    /**
     * 分页查询仓库
     *
     * @param warehouseSTO 查询数据
     * @return 仓库列表
     */
    PageData<WarehouseVO> selectWarehousePage(WarehouseSTO warehouseSTO);

    /**
     * 查询仓库
     *
     * @param warehouseId 仓库id
     * @return 仓库信息
     */
    WarehouseVO selectWarehouseInfo(Long warehouseId);

    /**
     * 新建仓库
     *
     * @param warehouseDTO 请求数据
     * @return 仓库id
     */
    Long createWarehouse(WarehouseDTO warehouseDTO);

    /**
     * 修改仓库
     *
     * @param warehouseId 仓库id
     * @param warehouseDTO 请求数据
     */
    void updateWarehouse(Long warehouseId, WarehouseDTO warehouseDTO);

    /**
     * 删除仓库
     *
     * @param warehouseId 仓库id
     */
    void deleteWarehouse(Long warehouseId);
}
